Skip to main content

Run with Helm/Kubernetes

Quickstart

Tools needed:

  • Docker
  • Kubernetes
  • Helm
args: ['--dataDir', '/mnt/bifrost/data', '--stakingDir', '/mnt/bifrost/staking']

volume:
mountDirectory: /mnt/bifrost

helm repo add topl https://topl.github.io/helm-charts
helm repo update
helm upgrade --install bifrost topl/bifrost -n bifrost --create-namespace -f ./values.yaml

Install K8s cluster

Ubuntu

In this example, we will use microk8s. There are many others you can use, including Docker Desktop + K8s, Minikube, k3s, Kind, etc.

https://microk8s.io/docs/getting-started

sudo snap install microk8s --classic
# Add user to group
sudo usermod -a -G microk8s $USER
sudo chown -f -R $USER ~/.kube

Enable add ons

microk8s enable dns hostpath-storage

Windows

Follow Docker Desktop installation instructions: ​ https://www.docker.com/products/docker-desktop/ I recommend using the WSL2 backend. Instructions are here: ​https://docs.docker.com/desktop/windows/wsl/

Once Docker Desktop is installed, k8s is as easy as clicking a button

Add an Alias

You may also want to create an alias so you don’t have to type microk8s kubectl every time. A common way would be do

vim ~/.bash_aliases

Add this line

alias k="microk8s kubectl"
alias helm="microk8s helm"

Reload the shell, and then you can run commands like

k get pods

The rest of the guide assumes an alias. If you didn’t add one, use the kubectl , microk8s kubectl, minikube kubectl, etc.

Install Helm Chart

Add the Topl Helm repository

helm repo add topl https://topl.github.io/helm-charts
helm repo update

Install the Bifrost helm chart

helm upgrade --install bifrost topl/bifrost -n bifrost --create-namespace

You can pass values to the chart either by passing a values.yaml file, or individual values via the --set flag.

helm upgrade --install bifrost topl/bifrost -n bifrost --create-namespace -f ./path/to/values.yaml
helm upgrade --install bifrost topl/bifrost --set volume.mountDirectory='/mnt/bifrost' -n bifrost --create-namespace

Finally, check the pod to make sure it is running.

k get pods -n bifrost

# To get more detailed info if the pod did not start, run
k describe pods -n bifrost

You can view the logs by running:

k logs statefulset/bifrost -n bifrost

# Or individual pods:
k logs bifrost-0 -n bifrost